/*
 * Copyright (C) 2009 2DAI
 *
 * Este programa es Software Libre; usted puede redistribuirlo
 * y/o modificarlo bajo los términos de la "GNU General Public
 * License" como lo publica la "FSF Free Software Foundation",
 * o (a su elección) de cualquier versión posterior.
 *
 * Este programa es distribuido con la esperanza de que le será
 * útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía
 * implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en
 * particular. Vea la "GNU General Public License" para más
 * detalles.
 *
 * Usted debe haber recibido una copia de la "GNU General Public
 * License" junto con este programa, si no, escriba a la "FSF
 * Free Software Foundation, Inc.", 59 Temple Place - Suite 330,
 * Boston, MA  02111-1307, USA.
 */
package data;

import com.mysql.jdbc.ResultSet;
import java.sql.SQLException;
import on.Team;
import util.Errors;

/**
 *
 * Author: Gema Lopez Garcia
 */
public class DataTeam extends DataManager<Team> {

    private String tabla = "team";

    public DataTeam() {
        super();
        super.setTabla(tabla);
        requerir();
    }

    @Override
    public void requerir() {
        try {
            //conectamos
            sql.conectar();
            //recojemos los resultados. En la select utilizanos la variable que
            //contiene el nombre de la tabla.
            ResultSet rs = (ResultSet) sql.ejecutarSelect("select id_team,name,league,contact_person,email from " + tabla);
            //mientras hayan resultados los vamos insertando en el array de jugadores

            while (rs.next()) {
                Team team = new Team();
                team.setId_equipo(rs.getInt(1));
                team.setNombre(rs.getString(2));
                team.setTxtLiga(rs.getString(3));
                team.setPersona_contacto(rs.getString(4));
                team.setEmail(rs.getString(5));
                getList().add(team);
            }
        } catch (SQLException ex) {
            Errors.creaError("ERROR: No se han podido conseguir los datos\n" + ex.getMessage(), ex.getStackTrace());

        } finally {
            sql.desconectar();
        }
    }

    @Override
    public void guardar(Team o) {
        getList().set(index, o);
        sql.conectar();
        System.out.print("UPDATE " + tabla + " " +
                " SET name=" + o.getNombre() + "," +
                "league =" + o.getLiga()[o.posicionLiga(o.getTxtLiga())].toString() + "," +
                "contact_person= " + o.getPersona_contacto() + "," +
                "email =" + o.getEmail() + ")" +
                "WHERE id_team=" + o.getId_equipo());
        sql.ejectarUpdate("UPDATE " + tabla + " " +
                " SET name=\'" + o.getNombre() + "\'," +
                "league =\'" + o.getLiga()[o.posicionLiga(o.getTxtLiga())].toString() + "\'," +
                "contact_person= \'" + o.getPersona_contacto() + "\'," +
                "email =\'" + o.getEmail() + "\'" +
                "WHERE id_team=\'" + o.getId_equipo()+"\';");
        sql.desconectar();
    }
 
    @Override
    public void insertar(Team o) {
        sql.conectar();
        getList().add(o);
        sql.ejectarUpdate("INSERT INTO " + tabla + "(name,league,contact_person,email) " +
                "VALUES(\'" + o.getNombre() + "\'," +
                "\'" + o.getLiga()[o.posicionLiga(o.getTxtLiga())].toString() + "\',\'" + o.getPersona_contacto() + "\'," +
                "\'" + o.getEmail() + "\')");
        sql.desconectar();
    }

    @Override
    public void eliminar(Team o) {
        sql.conectar();
        getList().remove(index);

        sql.ejectarUpdate("DELETE FROM " + tabla + " WHERE id_team=" + o.getId_equipo()+"");
        sql.desconectar();
    }

    @Override 
    public void crear(String tabla) {
        sql.conectar();
        sql.ejectarUpdate("DROP TABLE IF EXISTS" + tabla + ";");
        sql.ejectarUpdate("CREATE TABLE IF NOT EXISTS" + tabla + " (" +
                "id_team int(11) NOT NULL auto_increment," +
                "name varchar(20) NOT NULL," +
                "league varchar(3) NOT NULL," +
                "contact_person varchar(20) NOT NULL," +
                "email varchar(40) NOT NULL," +
                "PRIMARY KEY  (id_team) )" +
                "ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;");
        sql.desconectar();
    }
    public Team obtenerEquipo(int id) {
       Team team= new Team();
        try {
            sql.conectar();
            //getList().remove(index);
            ResultSet rs = (ResultSet) sql.ejecutarSelect("SELECT * FROM " + tabla +
                    " WHERE id_team= " + id);
            rs.next();
            team.setEmail(rs.getString(5));
            team.setTxtLiga(rs.getString(3));
            team.setNombre(rs.getString(2));
            team.setPersona_contacto(rs.getString(4));

        } catch (SQLException ex) {
            Errors.creaError("ERROR: No se han podido conseguir los datos\n" + ex.getMessage(), ex.getStackTrace());
        } finally {
            sql.desconectar();
            return team;
        }
    }
}
